//
// Created by zj on 18-7-31.
//

#ifndef SIMULATION_PURE_ADCT_H
#define SIMULATION_PURE_ADCT_H

#include "type.h"
#include "List.h"
struct cache_operation * PURE_ADCT_op_setup();

//对应各个链表的长度,全局变量的cache_size在global.h中定义
int CLRU_CACHE_SIZE;
int PURE_ADCT_DLRU_CACHE_SIZE;
int PURE_ADCT_CACHE_MAX_SIZE;

//各自链表的头结点
pNode PURE_ADCT_CLRU_Head;
pNode PURE_ADCT_DLRU_Head;

//还需要定义和上一次flash读写延迟的比例
double PURE_ADCT_FLASH_WRITE_DELAY;
double PURE_ADCT_FLASH_READ_DELAY;
//设置周期物理读写的次数和读写时延
int pure_ADCT_cycle_physical_write;
int pure_ADCT_cycle_physical_read;

//设置对应的命中情况变量
int pure_ADCT_Hit_CWH;
int pure_ADCT_Hit_CRH;
int pure_ADCT_Hit_DRH;
int pure_ADCT_Hit_DWH;
int pure_ADCT_Count;

double pure_ADCT_cycle_flash_read_delay;
double pure_ADCT_cycle_flash_write_delay;

//还有算法定义中的Tau(目标干净页队列的大小),还可以指定初始的Tau值在global.h中定义
int PURE_ADCT_Tau;



#endif //SIMULATION_PURE_ADCT_H
